package com.hyt.it.ogt.ykcj.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;

@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "ExamPublishInfoVo对象", description = "考生发布信息对象")
@Data
public class ExamPublishInfoVo {

    /**
     * 考试ID
     */
    @ApiModelProperty(value = "考试ID")
    private String examId;

    /**
     * 发布类型(0:成绩显示;1:允许查看试卷;2:成绩复核申请)
     */
    @ApiModelProperty(value = "发布类型(0:成绩显示;1:允许查看试卷;2:成绩复核申请)")
    private Integer publishType;

    /**
     * 显示勾选
     */
    @ApiModelProperty(value = "显示勾选")
    private Integer showPublishTypeResult;

    /**
     * 考试是否关联证书
     */
    @ApiModelProperty(value = "考试是否关联证书")
    private Boolean relationZs;

    /**
     * 显示类型(0:显示总成绩;1:显示考试结果;2:显示科目信息;3:显示正确答案和解析;4:不显示正确答案和解析)
     */
    @ApiModelProperty(value = "显示类型(0:显示总成绩;1:显示考试结果;2:显示科目信息;3:显示正确答案和解析;4:不显示正确答案和解析;5:显示子考试信息)")
    private List<String> showTypes;

    /**
     * 查看类型类型(0:随时;1:固定时间)
     */
    @ApiModelProperty(value = "查看类型类型(0:随时;1:固定时间)")
    private Integer seeType;

    /**
     * 开始日期
     */
    @ApiModelProperty(value = "开始日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startDay;

    /**
     * 结束日期
     */
    @ApiModelProperty(value = "结束日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endDay;

    /**
     * 科目信息集合
     */
    @ApiModelProperty(value = "科目信息集合")
    private List<ExamPublishSubjectInfoVo> subjectInfoVos;

    /**
     * 考试信息集合
     */
    @ApiModelProperty(value = "考试信息集合")
    private List<ExamPublishExamnfoVo> examInfoVos;

    /**
     * 试卷信息集合
     */
    @ApiModelProperty(value = "试卷信息集合")
    private List<EaxmPublishPaperVO> eaxmPublishPaperVOs;

    /**
     * 试卷信息集合
     */
    @ApiModelProperty(value = "证书下载")
    private List<ExamPublishCertificateInfoVO> examPublishCertificateInfoVOS;
}
